package com.pti.usermanager.dao.mapper;

import com.pti.usermanager.dao.po.RolePo;
import com.pti.usermanager.dao.po.UserPo;
import com.pti.usermanager.web.dto.request.SaveRoleRequest;
import com.pti.usermanager.web.dto.request.UpdateRoleRequest;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @ClassName: RoleMapper
 * @Author: mahuilin
 * @Description: 用户数据层
 * @Date: 2019/1/17
 */
@Mapper
public interface RoleMapper {

    //角色分页加模糊查询
    List<RolePo> findAll(@Param("roleNm") String roleNm);
    //根据角色id查看对象
    RolePo findAllByRoleId(@Param("roleId") Long roleId);
    //添加角色
    void saveRole(@Param("saveRoleRequest") SaveRoleRequest saveRoleRequest);
    //修改角色
    void updateRole(@Param("updateRoleRequest") UpdateRoleRequest updateRoleRequest);
    //删除角色
    void delRole(@Param("roleId") Long roleId);
    //分配用户
    void saveUserByRidAndUid(@Param("roleId") Long roleId,
                             @Param("usrId") Long usrId);
    //删除分配用户关联
    void deleteUserByRid(@Param("roleId") Long roleId);
    //分配菜单
    void saveMenuByRidAndMid(@Param(value = "roleId") Long roleId,
                             @Param(value = "menuId") Long menuId);
    //删除分配菜单关联
    void deleteMenuByRid(@Param("roleId") Long roleId);

    //查看分配用户详情
    List<UserPo> findUerIdsByRoleId(@Param("roleId") Long roleId);


}
